package com_2;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Properties;

public class ReflectDemo4 {//定义一个反射测试类
    public static void main(String[] args) throws Exception {
        //main方法入口并抛出异常
        Properties  pre=new Properties();//创建properties对象
        FileReader  f=new FileReader("Reflect\\class.txt");//创建字符输入流用以读取class的文本
         pre.load(f);//将读取的数据存入集合中
         f.close();//关闭流
        String className = pre.getProperty("className");//通过键值获取className的值获取类的名称
        String methodName = pre.getProperty("methodName");//获取方法名称
        Class<?> c = Class.forName(className);//通过获取的类名获取class文件对象
        Constructor<?> cons = c.getConstructor();//再通过class对象获取类中无参数构造方法
        Object o = cons.newInstance();//再通过newInstance创建一个类的对象
        Method method = c.getMethod(methodName);//使用class文件对象调用getMethod方法获对应的方法
         method.invoke(o);//最后调用invoke方法进行调用方法

    }
}
